今天開始要把我們先前花了24天研究與實作的永豐線上收付款API -- 豐收款 (funBIZ),作一些總結與回顧,讓有興趣要使用的朋友,了解要注意的地方,以及還有哪些不在本次實作範圍內,但可以額外添加的部份。
要談這個問題,當然需要知道豐收款是作什麼的。豐收款是永豐APIs眾多服務中的一個,專門提供給電商網站平台作為金流服務支付款的解決方案。
所以誰需要?你如果滿足以下情境你就可以是豐收款的用戶。
圖:只有在文件中的收款情境提到LINEPay一次,但無提供規格內容
如果你符合上述情境,恭喜你,永豐APIs的豐收款可以幫助你解決這個問題。
既然你希望你電商平台的顧客,可以透過永豐提供的線上付款方式來付款,比如確認訂單後,就把網址導入到永豐的信用卡刷卡網址,顧客開心的刷完錢後等待後續的出貨流程等等。
所以在此之前,你當然需要先正式的和永豐豐收款運行單位接洽,提供永豐所需要的資訊與申請流程,中間有哪些規範與審核流程等,需要有興的朋友直接與永豐接洽。
需要先進行相關申請程序後,你才能取得如整系列文章中提到的「商店代號」以及「4組Hash代碼」。
完整豐收款的服務,其實是在永豐的數位支付整合服務中,網址請到:
https://funcashier.sinopac.com/digital_payment/index.html
而有興趣申請的朋友,可透過以下連結與永豐聯繫:
https://funcashier.sinopac.com/WebSite/Pages/api_webform.aspx
其實豐收款的服務範圍,比這次提供的線上收付款(ATM、信用卡)還要多,從上面官網可以了解到:
提供多種收款方式
「豐收款」可彈性符合您的商業模式與多種收款情境,透過技術串接方式將收款金流整合到既有的購物網站。若您也準備拓展陸客市場,可選擇透過QR Code收款或POS收銀台掃描進行實體店面支付寶收款。
其中,在收款方式又分為境內收款以及跨境收款兩種。
而境內收款,可以看到其實除了線上收款的服務,永豐也提供了超商取貨付款的延伸介接。(以目前的時間點看,是與全家便利商店合作,未來是否會再和其他更多的超商,請再官網關注)
而跨境收款,是提供「實體通路」的服務,當然你需要有實體店面的買賣才會需要使用。但主要可提供大陸消費者用支付寶來付款。
上述了解完後,我們再跳回來電商平台的金流服務。你的電商顧客刷完卡後,你的後續服務流程會繼續走,該出貨的出貨,但顧客是把款項付給了永豐,因此當然在申請流程中永豐會和你要作帳務連結的銀行戶頭等資料。
你的金流先由永豐代收後,需要由電商主自行依照永豐定的請款流程和永豐申請款項,這部份細節不在這次的技術推廣範圍之內,但是這是必需要理解會產生的環節。包含不同的支付方式的請款的期限與週期多久,或請款流程中的服務費用等,這都請和永豐洽談才會知道。
這次我鐵人賽是以Python為基礎,使用Python的Django Web框架,透過Heroku PaaS平台建置與佈署,資料庫使用Postgres,中間很雞肋的帶了一些Vue以及Bootstrap5,這些如果你是從前面開始看文章的朋友應該很清楚。
但豐收款API,是一個REST API,所以你可以使用任何符合HTTP標準的Request/Response方式串接的程式語言與架構,都能實作,因此並無什麼實作環境與語言選擇的限制。
其實這一系列文章,因為我們報名了iThome鐵人賽,所以因為合作關係我們會與永豐提出參賽的測試申請,因此會取得由永豐寄來給參賽者的相關文件與資料。
其中包含了:
因此,如果看這系列文章的讀者,手上雖然沒有開發規格書,但我認為不影響你了解整個豐收款的功能與實作細節。但如果你是透過上述方式取得了永豐提供的正式文件者,你是也會有一份開發規格書的,那想必你會更清楚的知道所有規格書中提及的內容。
因此,即規格書中使用的都是測試環境好像整份提供出來應無大礙,但還是先維持符合永豐與iThome鐵人賽的合作關係,我們雖然文章中也有從規格習中引用或截圖等的部份資訊,但沒有取得同意下就不放上整份文件給大家參考。
好啦,給你看一下封面 (笑)。
而有興趣是以C#或PHP來實作的朋友,就可以直接參考永豐官方提供的Sample Code。但這次鐵人賽當然希望研究些不同的東西,即使這兩個網頁開發架構都是我原本熟悉或多年前接觸的,因此反而為了冒險與創利,刻意不選用這兩個語言與框架來撰文。
但如果你是以電商實作為目標,反而你挑選這兩種其一,會比較有直接可參考的程式碼。(至少是官方寫的)
不選我一直認為,語言只是一個基礎工具,就像一篇在講述如何教你作菜的文章或影片,被翻譯成多國語言一樣。本質還是在講作作菜的流程與手法,語言不同並不是太大問題。
當然,你可能要從中挑語病,會說Django是框架,不是語言呀,語言只有Python吧。但這就和教你作菜中的老師,他用的爐子、鍋子、鏟子等,想必和你手中的爐子、鍋子、鏟子的牌品與規格略有不同,但他們都是有相同的功能的工具。
Django是Web框架,雖然和ASP.Net (或.NET Core)或PHP提供的細節不同,但概念是一樣的。我認為這也不直接影響你會學會這一道菜的目標。
因此,有興趣想快速了解永豐API的實作過程,這些都不應該對剖析與了解有太大影響,當然如果你本身就對Python實作有興趣者,希望這系列文章有幫助到你理解。雖然我不能說我的實作寫法是最好的,但至少從零開始到確定可完成實作結果。
今天就先寫到這裡,下一篇繼續聊聊。